/**
 * udes.ds.rmi
 * Equation.java
 * 3 sept. 08
 */
package ift605.tp3.utils.equations;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * Common interface for all derivable mathematical equation types
 * 
 * @author Luc Bergevin
 * @version 1.0
 */
public interface IEquation extends Serializable
{
    
    /**
     * Computes de value of y (the function value) given the value of x
     * 
     * @return y double
     * @param x
     *            double
     */
    abstract public double getFunctionValue(double x);
    
    abstract public BigDecimal eval(BigDecimal x);
    
    /**
     * Returns a user-readable form of the equation
     * 
     * @return String
     */
    abstract public String getUserReadableString();
    
    /**
     * Prints to the system output a user-readable form of the equation
     * 
     * @return void
     */
    abstract public void printUserReadable();
    
}
